#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f nginx defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add nginx'

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

# Author:   Xiao Dong
# website:  http://lnmt.org

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=nginx
NGINX_BIN=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

case "$1" in
	start)
		echo -n "Starting $NAME... "

		if netstat -tnpl | grep -q nginx;then
	        echo "$NAME (pid `pidof $NAME`) already running."
	        exit 1
		fi

		$NGINX_BIN -c $CONFIGFILE

		if [ "$?" != 0 ] ; then
			echo " failed"
			exit 1
		else
			echo " done"
		fi
	;;

	stop)
		echo -n "Stoping $NAME... "

		if ! netstat -tnpl | grep -q nginx; then
			echo "$NAME is not running."
			exit 1
		fi

		$NGINX_BIN -s stop

		if [ "$?" != 0 ] ; then
			echo " failed. Use force-quit"
			exit 1
		else
			echo " done"
		fi
	;;

	status)
		if netstat -tnpl | grep -q nginx; then
			PID=`pidof nginx`
			echo "$NAME (pid $PID) is running..."
		else
			echo "$NAME is stopped"
			exit 0
		fi
	;;

	force-quit)
		echo -n "Terminating $NAME... "

		if ! netstat -tnpl | grep -q nginx; then
			echo "$NAME is not running."
			exit 1
		fi

		kill `pidof $NAME`

		if [ "$?" != 0 ] ; then
			echo " failed"
			exit 1
		else
			echo " done"
		fi
	;;

	restart)
		$SCRIPTNAME stop
		sleep 1
		$SCRIPTNAME start
	;;

	reload)

		echo -n "Reload service $NAME... "

		if netstat -tnpl | grep -q nginx; then
			$NGINX_BIN -s reload
			echo " done"
		else
			echo "$NAME is not running, can't reload."
			exit 1
		fi
	;;

	configtest)

		echo -n "Test $NAME configure files... "

		$NGINX_BIN -t
	;;

	*)
		echo "Usage: $SCRIPTNAME {start|stop|force-quit|restart|reload|status|configtest}"
		exit 1
	;;

esac